When a storage apparatus constitutes, for example, a RAID system, in each storage medium module that constitutes the storage apparatus, a role as a master/slave is assigned to a CM that controls read and write operations on the storage medium module according to a processing instruction given from the outside.
Commands (control of setting changes, state acquisition, and maintenance) from an upper-level tool, such as a graphical user interface (GUI) maintenance tool, operated by, for example, a user or a maintenance person are sent to and received from an operation terminal via a local area network (LAN) for the storage apparatus.
In this case, hitherto, a CM set as a slave (a slave CM) has not been permitted to perform the aforementioned command control, and only a CM set as a master (a master CM) has been permitted to perform the command control, so that the command control has been driven by the master CM. Since all the commands other than those that require post-processing when the master CM goes down during command execution have been controlled by the master CM, the slave CM has not been capable of determining the state of functional processing by the master CM.
The reasons why the control is driven by a master CM are as follows:
(1) In many cases, a GUI maintenance screen is provided via a World Wide Web (Web) browser. Except in the case of emergency where connection to a browser cannot be established, there is no great necessity for manual switching from a master CM to a slave CM;
(2) Automatic switching from a master CM to a slave CM is needed only when the master CM goes down or a LAN port breaks;
(3) When a master CM goes down during the processing of a maintenance command, in most cases, no problem occurs if a new master CM that is newly connected to a LAN executes the maintenance command;
(4) In general, only a master CM has been connected to a LAN port, and a slave CM has not been connected to a LAN port to be incapable of getting access; and
(5) A plurality of users authorized to make settings have not needed to log in at the same time. For the aforementioned reasons, hitherto, implementation in which processing control is driven by a master CM has not caused a problem.
However, as the variety of types of connections to storage apparatus, including network connections, has been increased, a request to permit a plurality of users authorized to make settings to log in at the same time and permit a slave CM to issue maintenance commands has been made. Moreover, a request to permit simple manual switching of a master CM has been made.
In such cases, in a known storage apparatus, it is not assumed that a plurality of users log in a master CM and a slave CM at the same time to perform processing and switching of the master CM is performed during the processing. Thus, the following problems may occur:
(1) Since each of the CMs cannot determine which function another CM is executing, in processing triggered by a command from a GUI, continuous processing cannot be performed at all;
(2) When a slave CM or a new master CM designated after switching of a former master CM executes a command, the same processing may be performed in a storage apparatus in a duplicate manner, and thus the storage apparatus may malfunction; and
(3) In a case where the guard of each command is enhanced, inquiries need to be sent to not only the CM but another CM, communicating with the other CM, and thus additional communications occur.
FIGS. 11A and 11B illustrate a case where a LAN is active (Active) only for a master CM in a known art. In normal condition, an operation terminal #0 and an operation terminal #1 can access a master CM, the master CM includes a function processing unit 201(#0) and a command control unit 202(#0), as illustrated in FIG. 11A (normal condition). However, in the known art, when a part of a network breaks, as illustrated in FIG. 11B (path anomalies), since, for example, a storage apparatus does not include a mechanism that changes a master CM upon detecting network anomalies or cannot detect network failures, the master CM cannot be changed. Thus, a problem exists in that both the operation terminals #0 and #1 cannot have access.